約 4,098,464 件
https://w.atwiki.jp/arma3/pages/45.html
更新停止中
https://w.atwiki.jp/arma3life-tokyo/pages/89.html
□サーバールール Arma3 Life Tokyo への参加はすべての承認制の参加となっています プレイヤーのすべてがコミュニティへの規則や規制を理解して同意することが必要です。 Arma3 Life Tokyoすべてのプラットフォーム上での、人種差別的、同性愛嫌悪的、性差別的 偏見的、または無礼なコンテンツへの使用は厳禁です、また参加者、スタッフ、管理者への軽蔑、暴言は 永久に参加権利を失います。 s
https://w.atwiki.jp/arma3editor/pages/6.html
Arma 3 Cars Config Guidelines ARMA3における車両作成、改造におけるガイドラインを翻訳しましたので作成等にご利用下さい。 専門用語が有るので、日本語、英語共に不自由な人間が翻訳していると言う事をご理解ください。 文章そのままだと日本語的に理解し辛いので、意訳+注釈です。 ※実際にmoddingした訳ではなく、読んで意訳しただけなので、実際の意味と違う可能性が ありますのでご注意ください。 ワープロモード:参照http //www54.atwiki.jp/arma3editor/pages/4.html Arma 3 Cars Config Guidelines Arma 3 Cars Config Guidelines ARMA3の車両に関するコンフィグガイドライン Contents 内容 1 Intro 最初に 2 Additional functionality compared to A2/OA ARMA2、OAとの違い 3 Model requirements {p3d} p3d形式の"model"の条件 4 Model config changes {model.cfg} model.cfgの変更点 5 New config parameters {config.cpp} config.cppの新しいパラメータ 5.1 Basic parameters 基本パラメータ 5.1.1 Differential parameters パラメーターの違い 5.1.2 Engine parameters エンジン用パラメータ 5.2 Wheel parameters ホイール用パラメータ 5.2.1 General parameters 一般的なパラメータ 5.2.2 Wheel PX parameters ホイールPXパラメータ 5.2.3 Wheel simulation parameters ホイールシュミレーションパラメータ 5.2.4 Suspension parameters サスペンションパラメータ 5.2.5 Tire parameters タイヤパラメータ 5.3 Floating and sinking 浮く、沈む(水の上等) 5.4 PhysX 3 integration PhysX3 統合 5.4.1 Anti-roll bars アンチロールバー 5.4.2 Complex gearbox 複雑なギアボックス 5.4.3 Gearbox parameters ギアボックスパラメータ 5.4.4 Different amount of torque 個別のトルクの量 5.5 IK for hands and legs 乗車時、キャラクタの手足の位置 5.6 Picture in Picture for screens and mirrors スクリーンとミラーにピクチャーインピクチャー(画像の中に別の画像を表示する)する方法 ※要約すると、車両にバックミラーやモニター等に表示させる記述 5.7 Random visual variants ランダムにビジュアルを変化させる ※ハッチバック等、スポーンする度にテクスチャが違うアレ 5.7.1 Random variants script ランダムに表示させる為のスクリプト 5.8 Reflectors, markerlights and beacons 反射板、マーカーライト、ビーコン 5.8.1 Reflectors 反射板 5.8.2 Markerlights マーカーライト 5.8.3 Beacons ビーコン 6 Basic config hints 基本的なコンフィグのヒント 6.1 Diagnostics 診断(作成した車両のテスト) 6.2 Suspension サスペンション 6.3 Gearbox ギアボックス 7 Reference 参照場所 Intro 初めに 101 - How to set up a car for Arma 3 ARMA3用の車の作り方 Please be aware of our Arma 3 modding license http //community.bistudio.com/wiki/Arma_3_Modding_License ARAM3用MOD作成に関するライセンス規定を確認してください。 Additional functionality compared to A2/OA ARAM2、OAとの違い PhysX 3 integration ○PhysX3と統合 IK for hands/legs ○車両乗車時の手足の位置 Picture in Picture - Render to texture ○PiP テクスチャーのレンダー Random visual variants (textures, accessories, doors) ○ランダムでビジュアルの変化 ※テクスチャー、アクセサリー(バリエーション的なもの)、ドアをスポーン時にランダム表示 Floating and sinking ○水上での浮き沈み Reflectors, markerlights and beacons ○反射板、マーカーライト、ビーコン Model requirements {p3d} p3dモデルに関する必須項目 A new PhysX lod ○新しいPhysX LOD There needs to be a lod (4e13) consisting of convex components as simple as possible, some 60 faces shall be sufficient for most cars 作成には単純な構造のものが必要です。ただ、大半は60面程あれば車両を作成するには十分です。 ※私の知識不足で、LOD(4e13)がexで40trillionなのか、それ以外の「何か」なのか良く解りません。 Current public Oxygen version doesn t support showing correct name of this lod and displays only Geometry instead. Don t be afraid of having two geometries, it s going to be fixed with new tools. Oxygen(BIツール名)では、このLODの名前を表示できません。代わりにジオメトリだけを示します。(使用に問題なし)この問題は新しいツールで解消する予定です。 Just the main body of car should be in this lod, wheels are added by engine later 車両の基本部分は、上記のLODで構成される必要があります。 作成する順番はエンジン→ホイールの順に追加していきます。 Memory lod メモリーLOD There should be an axis for each wheel named wheel_X_Y_axis (X is position of wheel from front, Y is 1 for left and 2 for right), the name is defined in selected wheel as center ホイールの軸(中心)をwheel_X_Y_axisという名前で定義される必要があります。それぞれ(X,Y)でホイールの中心位置を定義します。 車両の正面から見た状態でホイールの位置をXの部分に記入します。Yは左右同じです(じゃないと傾くので)。 There should be a point at the edge of each wheel named wheel_X_Y_bound which is used to determine wheel radius (distance from wheel axis is used for this) - there is no other need than placing the point at the edge, even memory points for tracks could be used for this, the name is defined in selected wheel as boundary ホイール(タイヤ含めた)の大きさを測定するのに必要です。何かというと、ホイール外径の一カ所だけ指定すればwheel_X_Y_axisを中心として円を判定してくれます。 wheel_X_Y_boundのX、Yに何処でも良いので、外径部分の座標を指定します。 ※公式の解説画像ではホイールの中心から垂直方向の地面を座標定義してます。 ○注釈 ホイールの中心から外輪の距離を定義。 ・wheel_X_Y_axis ホイールの中心 ・wheel_X_Y_bound ホイールの半径(中心からの距離) ※多分、wheel_X_Y_boundの「X または Y」のどちらかをホイールの半径分入力すれば良いと思います。Yが無難ですが。 physx bound.jpg Mirrors and screens should have their camera position defined in pipX_pos and direction in pipX_dir - parameters pointPosition and pointDirection in class RenderTargets ミラーとスクリーン(車載モニター)はカメラの位置(pipX_pos)と向き(pipX_dir)で定義する必要があります。 ※ミラーは実際に反射しているのではなく、カメラ機能を使って擬似的に「反射してる様に」見えるだけ。なので、「ミラー」を使うと当然、左右反転するようです。 Reflectors should have their position defined in LightCarHeadYXX (Y is a side - R/L, XX is a number) and direction defined in LightCarHeadYXX_end 反射器は LightCarHeadYXXで定義する必要があります。LightCarHeadYXX_end でその方向を定義します。Yは左右それぞれの横軸、XXは定義した番号です。 Mirrors and screens should have RTT texture #(argb,256,512,1)r2t(rendertargetX,1.0) - where X in rendertarget should be a number ミラーとスクリーンはRTTテクスチャを #(argb,256,512,1)r2t(rendertargetX,1.0)で指定します。Xは定義した番号を記入します。 Randomly generated accessories should have their selections independent on all other selections (mainly the main body and all the glass selections), glass as a part of hide-able accessory should be handled as two separate selections ランダムに発生するアクセサリーパーツは全て独立した部品である必要があります。 アクセサリの一部分を隠すように扱うには、2つの部分に分割(離れて)する必要があります。 ※ここ良く解りません。すいません。多分ですが、車両にオブジェクトを貼り付ける場合、車体に埋めると内部から見える場合があるので、 はみ出てた部分を隠したいなら部分を別パーツとして定義する必要があるという意味かと思われます。 Beacons and markerlights should have their material set to emit light ビーコンとマーカーライトは、発光させるために設置しなければなりません。 Spare wheel should have defined selections for it, texture underneath and correct hitpoints like a normal wheel スペアホイール(予備タイヤ)に交換できるようにするには定義する必要があります。予備タイヤの耐久性(壊れやすさ)は標準タイヤと同じ数値です。 ※交換なので、エンジニアの修理とは別です。 Man-held turrets shouldn t be hidden when destroying them without destroying the whole vehicle - IK issues would crash the game ターレット(銃座)の乗員が乗っている状態(と定義して)でターレットを隠すように指定した場合、ゲームがクラッシュします(IK定義の関連) ただし、車両が「完全に破壊(ドカーンって燃えた)」された状態であれば、問題ありません。 ※車両がアライブの状態で「見えないターレット」を定義して使うとクラッシュするという事かと思われます。多分。 Model config changes {model.cfg} model.cfgの変更点 Only the dampers are affected by the changes, best way to set them is to place an axis with the length of moveable part alongside the damper and set offsets to +-0.5 ダンパー(サスペンション)は凹凸路面などの影響を受けて可動します。そのため、定義する際に「ダンパーの中心から±0.5ほどオフセットするといいと思います。 Example {model.cfg} class Wheel_1_1_Damper { type="translation"; source="damper"; selection="wheel_1_1_damper_land"; axis="posun wheel_1_1"; animPeriod = 1; minValue="0"; maxValue="1"; offset0= "0.5"; offset1= "-0.5"; memory=1; }; ●●●●●●●●●●●●訳 28/Oct/2013●●●●●●●●●●●●●●●●●●●● Sections for hiddenSelectios[] should be set in model.cfg hiddenSelectios[]の部分はmodel.cfgで定義する必要があります。 New config parameters {config.cpp} config.cppの新しい追加パラメータについて Basic parameters 基本パラメータ Following parameters are defined in vehicle class. vehicle classという定義内で以下のパラメーターを使います。 ※config.cppの車両に関する定義部分にviecle classという場所があるので、そのクラスを定義する際に使用するという事。 string (required) simulation = "carx"; float 0.0 dampersBumpCoef = 0.3; Differential parameters 他と異なるパラメータ string; accepable values "all_open", "all_limited", "front_open", "front_limited", "rear_open", "rear_limited" "all_limited" differentialType = "all_limited"; float 0.5 frontRearSplit = 0.5 float 1.3 frontBias = 1.3; float 1.3 rearBias = 1.3 float 1.3 centreBias = 1.3 float 10.0 clutchStrength = 10.0; float 0.01 switchTime = 1.01; Engine parameters エンジンパラメータ float (required) enginePower = 600; float 600 which is cca 6000 rounds per minute. maxOmega = 600; float value calculated from enginePower according to http //en.wikipedia.org/wiki/Horsepower#Relationship_with_torque peakTorque = 600; float, float, float 0.08, 2.0, 0.35 dampingRateFullThrottle = 0.08; dampingRateZeroThrottleClutchEngaged = 2.0; dampingRateZeroThrottleClutchDisengaged = 0.35; Array[i][2] where i = number of samples, maximum 8; {{0.0, 0.8}, {0.33, 1.0}, {1.0, 0.8}} torqueCurve[] = {{0.0, 0.8}, {0.33, 1.0}, {1.0, 0.8}}; Wheel parameters ホイールパラメータ This parameters relates to each wheel. In the vehicle class, there has to be subclass called Wheels, which contains subclass for every wheel the vehicle has. These are the parameters that could be defined in that subclasses. このパラメータはそれぞれのホイールに関する項目です。vehicle classはwheelsというサブ(隷下)クラス(viecle classがメインクラス)が必要です。 要は、車両に付いている全てのホイール(タイヤ)をサブクラスという定義でそれぞれ設定できるパラメータです。 General parameters 一般的なパラメータ string "" boneName = "wheel_1_1"; bool (required) steering = true; string "right" side = "left"; Wheel PX parameters ホイールPXパラメータ memory point (required) center = "wheel_1_1_axis"; memory point (required) boundary = "wheel_1_1_bound"; float 0.3*(raidus of the wheel) width = "0.2"; float 10.0 mass = 150; float 0.5 * WheelMass * WheelRadius * WheelRadius MOI = 40; float 0.1 dampingRate = 0.1; float 2500 maxBrakeTorque = 7500; float 2*maxBrakeTorque maxHandBrakeTorque = 0 Wheel simulation parameters ホイールシミュレーションパラメータ Array[3] {0, -1, 0} suspTravelDirection[] = {0, -1, 0}; memory point center suspForceAppPointOffset = "wheel_1_1_axis"; memory point suspForceAppPointOffset tireForceAppPointOffset = "wheel_1_1_axis"; Suspension parameters サスペンションパラメータ float 0.15 maxCompression = 0.15; mMaxDroop = 0.15; float vehicleMass/numberOfWheels sprungMass = 2066; float sprungMass*5,0*5,0 springStrength = 51653; float 0,4*2*sqrt(springStrength*sprungMass) springDamperRate = 8264; Tire parameters タイヤパラメータ float 10000 longitudinalStiffnessPerUnitGravity = 10000; float, float 25, 180 latStiffX = 25; latStiffY = 180; Array[3][2] {{0, 1}, {0.5, 1}, {1,1}} frictionVsSlipGraph[] = {{0, 1}, {0.5, 1}, {1,1}}; Floating and sinking 浮き沈み(水で) WaterLeakiness should be amount of water in liters that goes into selected object per second. This is set to zero by engine for all vehicles with simulation of a ship or having canFloat = 1 (unless they are toppled of destroyed, then config value takes precedence). WaterLeakiness = 10; seems to be a good value to start with for all kinds of vehicles no matter the size (which is a bit spooky, but it works). 浸水具合は指定パーツをℓ/secで定義します。浸水具合によってエンジンが止まります。ただ、船又はcanFloat=1と定義されたものは完全にブッ壊されない限り浮いてます。 最初はWaterLeakiness=10と定義して、どのぐらい水に浸かったらエンジンがブッ壊れるかテストすると良いでしょう。 PhysX 3 integration PhysX3で統合 WheelMask ホイールマスク thrustDelay is time in second in which thrust goes from 0 to 1 when standing still (doesn t affect driving car during change of gears), 0.2 seems to be a reasonable value. You may want to tweak this to higher values if wheels slide during initial acceleration. キー入力をしてから実際に車輪が動作するまでの遅延をthrustDelayで定義します。スラストが0→1になるまでの数値です。0.2位が妥当と思われます。もし1にしたら一瞬で加速します。 brakeIdleSpeed is speed in m/s under which the brakes are automatically applied to the vehicle. This speed should be reasonably low, higher value would mean strange breaking of slow cars, too low value would cause inability to stop the car. 1秒当たりのブレーキの定義です。 brakeIdleSpeedはm/secで定義します。この数値は低めに設定した方が良いです。高めに設定すると不自然な急ブレーキになります。 逆に異常に低すぎると止まれません。 idleRpm sets the idle RPM of engine. Primary use is for sound engine アイドリング時の回転数をidleRpmで定義します。停車時のエンジン音に関係します。 redRpm sets the maximum for engine RPM, should be according to maxOmega (see later) エンジンの最高回転数(レブリミット)をredRpmで定義します。後記のmaxOmegaに関係しています。 Anti-roll bars アンチロールバー Anti-roll bars is the system in vehicle that should prevent it to do a barrel-roll during sharper turns. Using ARB enables us to make center of mass realistically high and cause cars to roll down the steep slopes if placed sideways to the slope. It works the same way as the real ones - system computes difference of applied weight to wheels in pair and tries to compensate difference by applying opposite forces. アンチロールバーは急激なターンとか無茶な運転等で横転するのを防ぎます。錘みたいな物です。なので、横転しやすい車両も作れます。以下がそのパラメータ。 antiRollbarForceCoef is a coefficient of applied force, could be taken as strength of the system. Setting this value to zero disables ARB (and all next values), which is good for civilian vehicles, higher values reduce not only the risk of rolling, but effects of suspension. この数字を0にすると動かなくなります。逆にantiRollbarForceCoefの数字を高くすると横転しやすいどころか止まれません。 antiRollbarForceLimit is the highest strength of ARB applied to vehicle. We may want to roll the car at certain situations (full van taking sharp hand-brake turn at high speed), tunning without diag mode is almost impossible because we are not able to imagine forces needed (values are rather low, 2 should be high enough for most of vehicles) 高速移動中に急ハンドルで横転させたいとか、そういう時に必要になります。 antiRollbarSpeedMin and antiRollbarSpeedMax are limits of applied force coefficient. Coefficient is 0 at speeds lower than antiRollbarSpeedMin, interpolates to antiRollbarForceCoef at antiRollbarSpeedMax and is set to antiRollbarForceCoef for any higher speeds. This allows cars to drive on steep slopes using their radial speed, falling of the hill once they stop and rolling over at too high speeds (where coefficient doesn t grow and force is limited by the limit). antiRollbarForceCoefの上下限をantiRollbarSpeedMinとantiRollbarSpeedMaxで定義します。 Complex gearbox 複雑なギアボックス All PhysX 3 vehicles use complex gearbox to give some data to PhysX gearbox PhysX3の車両は全部ギアボックスが搭載されてます。 Complex gearbox settings is inside class complexGearbox which is a subclass of vehicle class ギアボックスのセッティングはcomplexGearboxというサブクラスで、viecle classの隷下です。 GearboxRatios[] is an array of gear names and gear ratios starting with reverse gear (with negative ratios), neutral gear (which should have zero ratio) and forward ratio (eg {"R1",-3.231,"N",0,"D1",2.462,"D2",1.870,"D3",1.241,"D4",0.970,"D5",0.711};). Gear names are not used in retail version, they are just for epevehicle diagnostics R1がバックで、Nニュートラル(数字入れたら勝手に前進します)、D1、D2・・・となります。GearboxRatios[]で定義すれば何ギアでも可能ですがギア比が訳解らなくなるので程々に。 TransmissionRatios[] is an array of transmission ratios in the same format as gearboxRatios. Most of cars have only one transmission ratio, some heavy trucks may have two. The final ratio of engine is gearboxRatio * TransmissionRatio, that means transmissionRatios shouldn t be multiplicates of each other and gearbox ratios to prevent the same final ratio for two different gears. 普通は1つ定義すれば良いですが、大型トラックは2つ定義が必要でしょう。 ※良く解らん・・・・ gearBoxMode is set to full-auto by engine gearBoxModeはエンジンによってフルオートでセットされます(・・は? イミフ) moveOffGear defines what gear an automatic or semi-automatic gearbox will move off from stationary in. 1 by default. この定義(moveOffGear)はオートマもしくはセミオートでギアボックスが静止状態から発車します。(動作にギア操作を入れるかどうか)標準(普段通りの操作)は1です。 driveString, neutralString and reverseString define displayed strings for driving forward, neutral and backward. この3つ(driveString, neutralString, reverseString)は前進、キー無操作、後進を表示させるために定義を紐づけします。 ※これを入れればギアがドライブ(D)、ニュートラル(N)、バック(R)のどの状態かHUDに表示されるようです。 -------------------------------------------------------- {config.cpp} class complexGearbox { GearboxRatios[] = {"R1",-3.231,"N",0,"D1",2.462,"D2",1.870,"D3",1.241,"D4",0.970,"D5",0.711}; TransmissionRatios[] = {"High",4.111}; // Optional defines transmission ratios (for example, High and Low range as commonly found in offroad vehicles) moveOffGear = 1; // defines what gear an automatic or semi-automatic gearbox will move off from stationary in. 1 by default. driveString = "D"; // string to display in the HUD for forward gears. neutralString = "N"; // string to display in the HUD for neutral gear. reverseString = "R"; // string to display in the HUD for reverse gears. }; -------------------------------------------------------- Gearbox parameters ギアボックスパラメータ Some gearbox parameters are defined outside of class complexGearbox, they are mainly to setup automatic gearbox 幾つかのギアボックスパラメータはcomplexGearboxのクラス外で定義します。サブクラスでは有りません。 通常、オートマ用のギアボックスに使用します。 changeGearMinEffectivity[]Value of minimal gear effectivity to hold current gear. If there is better gear and effectivity is below this value then change gear. It is an array of effectivities ordered by gears in complex gearbox. Neutral should have rather low effectivity (0.15 seems to be a good value), drive gears should have rather high value (around 0.95) to prevent switching gears too often switchTimeThe switch time describes how long it takes (in seconds) for a gear change to be completed. RPM interpolate to optimal value for the new gear at current speed during the changing of gears. The time should be rather low, around 0.3 s, to keep the momentum of the car. latencyis the minimum time (in seconds) that must pass between each gear change that is initiated by the autobox. This should be set to value higher than switchTime. Setting this time too low makes some issues with changing gears - the car slows down a lot Different amount of torque coefficients for different speeds of Slow, Forward and Fast are now configurable slowSpeedForwardCoefis set to 0.3 by default normalSpeedForwardCoefis set to 0.85 by default default speed coefficient for fast movement is 1 meaning that full throttle is applied and maximal speed is maxSpeed of the vehicle (it is going to apply less throttle upon reaching the limit) IK for hands and legs It s not Inverse Kinematics in fact, but as close to it as possible. A soldier should have IK defined for hands and legs by default Each vehicle pose using IK should haveleftHandIKCurve[]andrightHandIKCurve[]set to 1 Driver should havedriverLeftHandAnimNameanddriverRightHandAnimNamedefined as drive wheel bone of the vehicle (drivewheelby default) Gunner should havegunnerLeftHandAnimNameandgunnerRightHandAnimNamedefined on handles of the gun, or shaking bone of the weapon shall be sufficient (usually something likeotocHlaven_shake) Double check names of bones if the game crashes upon loading this vehicle and call stack points to IK. Wrong definition causes CTD all the time and removing the bone causes the same (eg. by hiding it). Picture in Picture for screens and mirrors All sources for textures to be rendered on are defined inclass RenderTargetswhich is a subclass of vehicle class Each source is a separate subclass with unique name parameterrenderTargetdefines which texture shall the source be mapped at (only therendertargetXpart is used) class CameraView1is a subclass of this source and contains all the parameters for rendered scene pointPositionandpointDirectionshould be respective memory points in model renderQualityis in range from 0 to 2 and defines quality of rendering for said source renderVisionModedefines the vision mode - 0 = HDR, 1 = NightVision, 2 = ThermalVision, 3 = Color, 4 = Mirror fovdefines field of view of this source {config.cpp} class RenderTargets { class LeftMirror { renderTarget = "rendertarget0"; class CameraView1 { pointPosition = "PIP0_pos"; pointDirection = "PIP0_dir"; renderQuality = 2; renderVisionMode = 0; fov = 0.7; }; }; }; Random visual variants Randomization of variants is done by script ran upon start of mission via init event handler The car should inheritclass EventHandlers EventHandlers {config.cpp} init event handler should be changed to something like this init="(_this select 0) execVM ""\pathToCar\scripts\scriptName.sqf"""; Don t forget to hide all the added accessories upon destruction of vehicle, they are usually in proxies, this is handled by killed event handler {config.cpp} killed = "_this call (uinamespace getvariable BIS_fnc_effectKilled ); _this select 0 animate [""RandomAnimation"",0]; Random variants script All random settings should be done on server side to prevent different car looks for different users {script.sqf} if (isLocal) then {_rnd1 = floor random Y; _this setVariable ["BIS_randomSeed1", _rnd1, TRUE]; _this animate ["RandomAnimation", X];}; Ystands for the number of random variants Even all the animations should be handled server-side to ease clients,RandomAnimationshall be replaced by any animation needed to be randomly chosen,Xstands for animation phase {script.sqf} waitUntil {!(isNil {_this getVariable "BIS_randomSeed1"})}; _randomSeed1 = _this getVariable "BIS_randomSeed1"; Random textures shall be taken with this statement {script.sqf} _this setObjectTexture [0, ["\pathToCar\Data\variant_1_co.paa", ...,"\\pathToCar\Data\variant_Y_co.paa"] select _randomSeed1]; Reflectors, markerlights and beacons Reflectors Reflectors need to be defined inclass Reflectors Default cars should have two reflectors defined as separate subclasses inside class Reflectors. These two classes should differ only inposition,direction,hitpointandselection. Position and direction are self-descriptive, they use memory points in mode, hitpoint is the name of selection in hitpoint lod in model, selection is a visual selection in resolution lods. Most of reflectors should haveuseFlareset to 1, they are bright enough to have a flare. Size of this flare is defined byflareSize, value should be rather low, around 0.1 seems to be good for start. class Attenuationinside each reflector subclass defines behavior of light from distance. Attenuation is combination ofconstant,linearandquadraticcoefficient,startis a distance from position where attenuation starts to work (the light is at it s full strength if distance is lower than start). aggregateReflectors[]outside of Reflectors class is used to ease computing of too many light sources and combines light together. Both reflectors should be aggregated for a default car but feel free to experiment. Just run some FPS test after testing non-standard settings. Markerlights Markerlights are purely model side based on assigned emissive materials Beacons Beacons consist of two parts on model side - emissive one and unlit one. The emissive one is hidden by default by an user controller and periodically hidden by time controller in model.cfg Config contains only user actions to turn beacons off/on by hiding/unhiding them, this is insideclass UserActions UserActions There should be two actions per beacons set - one to turn them off and other to turn them on, each as a subclass of UserActions {config.cpp} class UserActions UserActions { class beacons_start { userActionID = 50; displayName = "Beacons start"; displayNameDefault = ""; position = "mph_axis"; radius = 1.8; animPeriod = 2; onlyForplayer = false; condition = "this animationPhase ""BeaconsStart"" 0.5 AND Alive(this) AND driver this == player"; statement = "this animate [""BeaconsStart"",1];"; }; class beacons_stop beacons_start { userActionID = 51; displayName = "Beacons stop"; condition = "this animationPhase ""BeaconsStart"" 0.5 AND Alive(this) AND driver this == player"; statement = "this animate [""BeaconsStart"",0];"; }; }; Basic config hints Diagnostics Drive around as much as possible, preferably using real islands. Use Stratis airstrip for acceleration, gear change and sinking of vehicle purposes Path from Jay Cowe to Airstation Mike-26 on Stratis is great to test uphill performance of the car and AI driving skills Whole Chernarus is excellent playground to test vehicles Suspension Easier way to set up suspension is to have center of mass centered according to wheels. Non-centered center of mass is more interesting for driving performance, just be sure to make center of mass centered at least in left-to-right axis. Each wheel could have different suspension parameters but try to keep them the same for wheel pairs. You may try to use ARB if the car sways a lot sideways during turns. This causes lesser side sway but doesn t reduce bumping of suspension when accelerating and breaking. Gearbox Real gearbox ratios have extremely good results for higher speeds and are realistic for lower speeds. But it is better to use some lower values for lower gears to improve acceleration Look out for too big steps between gear ratios, this may prove to be problematic with steeptorqueCurve- engine would change gear later than expected and sound would go fubar dampingRateZeroThrottleClutchEngagedanddampingRateZeroThrottleClutchDisengagedcould be the same, this works really well for FWD cars - engine would slow them down way too much and lock the wheels when only directional arrow is pressed Reference This page is discussedon the BI forums 名前 コメント
https://w.atwiki.jp/chokonbo_master/pages/6.html
必要なもの ・STEAM版ARMA3 1) BPランチャーのインストール 1-1) 入手先へアクセス ここから入手 → http //www.thezombieinfection.com/ 1-2) 「DOWNLOAD」を選択 1-3) ”One more step”な画面が表示されるので、「Enter above text」の上にある文字列を下の欄へ入力 ※「Leave a message for the site owner? (100 characters left)」は未入力でもいい 1-4) 右下あたりに「チェックボタン」があるので、選択 1-5) ”BP_Installer.exe”をダウンロード 1-6) 「ARMA3」の場所と「BP」のインストールを設定 ・デフォルトでARMA3をインストールした場合、1-6)はデフォルトでいい 1-7) 「INSTALL」ボタンを選択 1-8) インストール開始したら終わるまで放置 途中での強制終了などで処理を止めないように! アカウントの作成
https://w.atwiki.jp/arma3editor/pages/9.html
Arma 3 Weapon Config Guidelines Arma3 武器コンフィグガイドライン Arma 3 Weapon Config Guidelines Contents 1 Intro ○初めに 2 Additional functionality compared to A2/OA ○追加機能(A2OAとの違い) 3 Model requirements {p3d} ○ p3d形式の model の条件 4 Model config changes {model.cfg} ○ model.cfgの変更点 5 New config parameters {config.cpp} ○ config.cppの新しいパラメータ 5.1 Slotable weapons ○武器のスロット 5.1.1 Muzzle accessories ○銃口部分のアタッチメント 5.1.2 Optics ○光学アイテム 5.1.3 Side Accessory ○武器アクセサリアタッチメント 5.2 Custom reload animations ○リロード時の動きの設定 5.3 Underwater weapons ○水中武器 5.4 Ammo changes on fly and on hit ○発射された弾、着弾した弾の変更 5.5 Explosion shielding ○爆発の保護 6 Reference ○参照 Intro 101 - How to set up a weapon for Arma 3 Arma3での武器の作り方 Please be aware of our Arma 3 modding license http //community.bistudio.com/wiki/Arma_3_Modding_License ARAM3用MOD作成に関するライセンス規定を確認してください。 Additional functionality compared to A2/OA Arma3で追加された機能 Slotable weapon accessories ○武器にスロットが追加されました。 Custom reload animations ○リロード時の動きをカスタム(武器ごとに固有の動きを与えるという意味かと) Adjustable sights ○照準を調整できます。(ACEでの機能とは別物) Underwater weapons ○水中武器の設定 Ammo changes on fly and on hit ○ Rotating muzzle-flash ○マズルフラッシュ Explosion shielding Model requirements {p3d} p3dモデルに関する必須項目 proxies for slotable accessories ○ スロットできるアクセサリの格納場所 muzzle accessory should be on proxy\A3\data_f\proxies\weapon_slots\MUZZLE ○銃口部分のアタッチメント(サイレンサー) optics should be on proxy\A3\data_f\proxies\weapon_slots\TOP ○光学アイテム(スコープ) side accessory should be on proxy\A3\data_f\proxies\weapon_slots\SIDE ○武器のアクセサリアタッチメント(ライト) all these proxies could be redefined incfgWeapons Weapon WeaponSlotsInfo XXX linkProxyparameter where XXX is the slot name ○すべてのアイテムはXXX(スロットの名前)で定義されます。 selections for folding iron sights ○アイアンサイトを(折畳)倒すかどうか選べます。 You need to create selections and axes for iron sights if You want them folded once the optics is put on the weapon ○もし折畳式アイアンサイトを武器につけたい場合、アイアンサイトの中心を定義する必要があります。 Front part should be namedForeSightwithForeSight_axisin memory lod ○フロントサイトの名前は定義は↑ ↑ ※axis は 中心って意味 Rear part should be namedBackSightwithBackSight_axisin memory lod ○リアサイトの名前定義は ↑です ※axis は 中心って意味 adjustable sights for grenade launchers ○グレネードランチャー用の調整可能な照準器 there needs to be a selection that is going to rotate (in case of collimator sights), default naming isOP this selection needs to have an axis in memory lod, default naming isOP_axis there needs to be a focus point, the best place is the red dot of collimator, with memory pointOP_lookby default and several points for eye, usuallyOP_eyeXwhere X is the number of the point. Good practice is to place them in same distance form focus point Model config changes {model.cfg} custom reload animation have a good use of newly added parameterunHideValuefor hide type of animations - you are now able to make asymmetrical animations eg. for hiding of magazine {model.cfg} class magazine_hide { type = hide ; source = reloadMagazine ; selection = magazine ; minValue = 0.000000; maxValue = 1.00000; hideValue = 0.220; unhideValue = 0.550; }; the animations could look a bit better by simply adding a translation for the magazine and adding an axis for that in model - magazine should translate at first, then disappear, appear and translate back {model.cfg} class magazine_reload_move_1 { type = translation ; source = reloadMagazine ; selection = magazine ; axis = magazine_axis ; minValue = 0.145; maxValue = 0.170; offset0 = 0.0; offset1 = 0.5; }; foldable iron sights usehasOpticscontroller {model.cfg} class BackSight_optic { type = rotation ; source = hasOptics ; selection = BackSight ; axis = BackSight_axis ; memory = 1; minValue = 0.0000000; maxValue = 1.0000000; angle0 = 0.000000; angle1 = (rad 90); }; new animation controllerszeroingandzeroing2take values fromdiscreteDistance[]of first and second muzzle of the weapon. The value is index number of current zeroing in the array starting with zero (that means the first value is 0, second is 1, the last is number of discrete distances plus one). It might be used for iron sights of the weapon if desired but better use is for UGL collimator sights rotation {model.cfg} class OP_ROT { type= rotation ; source= zeroing2 ; // use second muzzle zeroing for rotation sourceAddress= loop ; // loop when phase out of bounds selection= OP ; // selection we want to rotate axis= OP_axis ; // has its own axis minValue=0; maxValue=3; // this weapon has array with 4 distances angle0= rad 0 ; angle1= rad 65 ; }; rotating muzzle flashes are done using a new animation sourceammoRandomwhich changes it s value every time weapon is fired. Various degrees of rotation may be set up by using correct muzzle flash shape and minValue maxValue combination. {model.cfg} class MuzzleFlashROT { type= rotationX ; source= ammoRandom ; //use ammo count as phase for animation sourceAddress= loop ; //loop when phase out of bounds selection= zasleh ; //selection we want to rotate axis= ; //no own axis - center of rotation is computed from selection centerFirstVertex=true; //use first vertex of selection as center of rotation minValue=0; maxValue=4; //rotation angle will be 360/4 = 90 degrees angle0= rad 0 ; angle1= rad 360 ; }; New config parameters {config.cpp} Slotable weapons Available slots are defined in each weapon but are usually inherited from a parent weapon. They are stored as classes inclass WeaponSlotsInfowhich contains the slots and parameters for inventory Massis a new unit used to describe weight and volume of an object used. Each container has a set capacity in the same units. allowedSlots[] is an array of slot numbers where you may put the weapon. 701 stands for vest, 801 stands for uniform, 901 stands for backpack each weapon slot is a separate subclass in class WeaponSlotsInfo parameterlinkProxydefines a proxy in weapon model for said slot (see standard names on top) parameterdisplayNamedescribes a mouse-over name of slot in Inventory arraycompatibleItems[]lists possible accessory placeable into that slot. Most weapons are able to have any RIS equipment, but eg. muzzle accessory differs according to caliber. external classesCowsSlotandPointerSlotare used for standard optics and side accessory. That means these classes are outside cfgWeapons and changeable for all weapons at once. class SlotInfo; class CowsSlot SlotInfo { // targetProxy linkProxy = \A3\data_f\proxies\weapon_slots\TOP ; // display name displayName = $STR_A3_CowsSlot0; // class names with items supported by weapon compatibleItems[] = { optic_Arco , optic_aco , optic_ACO_grn , optic_hamr , optic_Holosight }; }; class PointerSlot SlotInfo { // targetProxy linkProxy = \A3\data_f\proxies\weapon_slots\SIDE ; // display name displayName = $STR_A3_PointerSlot0; // class names with items supported by weapon compatibleItems[] = { acc_flashlight , acc_pointer_IR }; }; class cfgWeapons { class myWeapon { class WeaponSlotsInfo { mass = 4; /// default mass of a weapon class MuzzleSlot SlotInfo { // targetProxy linkProxy = \A3\data_f\proxies\weapon_slots\MUZZLE ; // display name displayName = Muzzle Slot ; // class names with items supported by weapon compatibleItems[] = {}; // moved to each weapon }; class CowsSlot CowsSlot {}; class PointerSlot PointerSlot {}; allowedSlots[] = {901}; // you simply cannot put this into your pants }; }; }; Muzzle accessories suppressors are configured as a weapon inheriting some item abilities from classItemCore the class itself consists only from scope, displayName, picture and model, there is a separate subclassItemInfowith all the required parameters there is subclassMagazineCoefinside class ItemInfo with parameterinitSpeed- this is just a multiplier of initSpeed of weapon s magazine subclassAmmoCoefof class ItemInfo has more parameters for the ammo shoot through the suppressor hitis the coefficient of hit of original ammo visibleFire,audibleFire,visibleFireTimeandaudibleFireTimeare coefficients for detection upon shooting the weapon highercostcoefficient should make AI think more about shooting the suppressed weapon typicalSpeedandairFrictioncoefficients change the ballistic characteristics of the ammo there are alternatemuzzleEndandalternativeFiredirectly inside class ItemInfo to have different muzzle effects origin and muzzle flashes you may set upmodes[]and specific fire modes for the suppressed weapon directly in class ItemInfo class Mode_SemiAuto; class cfgWeapons { class ItemCore; class InventoryMuzzleItem_Base_F; class myMuzzleAccessory { scope = 2; displayName= My Muzzle Accessory ; picture= \A3\weapons_F\Data\UI\myMuzzleAccessory_CA.paa ; model = \A3\weapons_f\acc\myMuzzleAccessory ; class ItemInfo InventoryMuzzleItem_Base_F { class MagazineCoef { initSpeed = 0.8; }; class AmmoCoef { hit=0.8; visibleFire=0.3; audibleFire=0.8; visibleFireTime=0.5; audibleFireTime=1.0; cost = 1.0; typicalSpeed= 0.8; airFriction = 1.0; }; muzzleEnd = zaslehPoint ; // memory point in muzzle supressor s model alternativeFire = Zasleh2 ; // class in cfgWeapons with model of muzzle flash modes[] = { Single }; class Single Mode_SemiAuto { begin1[]={ A3\sounds_f\weapons\silenced\silent-25.wav , db0, 1,600}; begin2[]={ A3\sounds_f\weapons\silenced\silent-26.wav , db0, 1,600}; soundBegin[]={begin1,0.5, begin2,0.5}; closure1[]={ A3\sounds_f\weapons\closure\closure_rifle_2.wav , db0, 1,300}; closure2[]={ A3\sounds_f\weapons\closure\closure_rifle_3.wav , db0, 1,300}; soundClosure[]={closure1,0.5, closure2,0.5}; weaponSoundEffect = DefaultRifle ; }; }; }; }; Optics in addition to default parameters mentioned in muzzle accessories class, there isweaponInfoTypeto choose a correct resource for weapon info directly inside optic class there is the same ItemInfo subclass but with different parameters don t forget that ItemInfo inherits some parameters from InventoryOpticsItem_Base_F (eg. muzzlePos and muzzleEnd) in case you rename the memory points parameteropticTypeis used for balancing the optics for specific fire modes (should be further described by balancing crew) modelOpticsis the 2D model for selected optics subclassOpticsModesworks the same way it used to work in A2/OA class cfgWeapons { class ItemCore; class InventoryOpticsItem_Base_F; class myOpticsAccessory { scope = 2; displayName= My Optics Accessory ; picture= \A3\weapons_F\Data\UI\myOpticsAccessory_CA.paa ; model = \A3\weapons_f\acc\myOpticsAccessory ; weaponInfoType = RscOptics_myOptics ; class ItemInfo InventoryOpticsItem_Base_F { mass = 7; modelOptics= \A3\Weapons_f\acc\reticle_MyOptics_F ; class OpticsModes { class MyOptics { opticsID = 1; useModelOptics = true; opticsPPEffects[]={ OpticsCHAbera1 , OpticsBlur1 }; opticsZoomMin = 0.0555; opticsZoomMax = 0.1300; opticsZoomInit= 0.1300; discreteDistance[] = {100,300,400,500,600,700,800,900,1000}; discreteDistanceInitIndex = 1; distanceZoomMin = 100; distanceZoomMax = 1000; nFovLimit = 0.07; discretefov[] = {0.1300,0.0555}; discreteInitIndex = 0; modelOptics[] = { \A3\Weapons_f\acc\reticle_MyOptics_F , \A3\Weapons_f\acc\reticle_MyOptics_z_F }; memoryPointCamera = opticView ; visionMode[] = { Normal , NVG }; opticsFlare = true; opticsDisablePeripherialVision = true; cameraDir = ; }; class IronOnTopOfMyOptics MyOptics { opticsID = 2; useModelOptics = false; opticsFlare = false; opticsDisablePeripherialVision = false; opticsZoomMin=0.375; opticsZoomMax=1.1; opticsZoomInit=0.75; memoryPointCamera = eye ; visionMode[] = {}; discretefov[] = {}; }; }; }; }; }; Side Accessory the class of side accessory is made the same way as for muzzle accessory subclass ItemInfo contains some specific parameters, but they work the same way as they did in A2/OA class cfgWeapons { class ItemCore; class InventoryFlashLightItem_Base_F; class mySidesAccessory { scope = 2; displayName= My Sides Accessory ; picture= \A3\weapons_F\Data\UI\mySidesAccessory_CA.paa ; model = \A3\weapons_f\acc\mySidesAccessory ; class ItemInfo InventoryFlashLightItem_Base_F { mass = 9; class Pointer { irLaserPos= laser pos ; irLaserEnd= laser dir ; }; class FlashLight{}; }; }; }; Custom reload animations parameterreloadActionis now for both a magazine and the weapon. if it is not defined for any of them, default reload is played. if the parameter is defined for the weapon but isn t defined for a magazine, reloadAction for weapon is played upon reloading said weapon if the magazine has reloadAction defined, the action selected by this parameter is played every time (not depending on weapon). This ensures different reloads for different magazines of one weapon (eg. UGLs) the action chosen by reloadAction is played according to config of animations for said soldier (action in CfgMovesMaleSdr leads to a state in CfgGesturesMale for default soldier), different target states could be defined for different action maps (eg. there could be a different reload gesture for crouch and prone with rifle) class CfgMovesBasic { class DefaultDie; class ManActions { reloadMyWeapon = reloadMyWeapon ; }; }; class CfgGesturesMale { class Default; class States { class reloadMyWeapon Default { file= \A3\anims_f\Data\Anim\Sdr\wop\erc\stp\rld\rfl\reloadMyWeapon.rtm ; looped=0; speed=0.400000; mask= handsWeapon ; headBobStrength=0.200000; headBobMode=2; rightHandIKBeg=1; rightHandIKEnd=1; leftHandIKCurve[]={0,1,0.050000,0,0.950000,0,1,1}; }; }; }; class cfgWeapons { class myWeapon { reloadAction = reloadMyWeapon ; }; }; Underwater weapons weapons withcanShootInWaterset to 1 are able to shoot under water parametersoundBeginWater[]has the same use assoundBegin[]and defines what sounds and with what probability is going to be played while shooting under the water surface, both of them are defined per fire mode class Mode_SemiAuto; class cfgWeapons { class myWeapon { modes[] = { Single }; // this example weapon has just one fire mode canShootInWater = 1; // allows to shoot under water class Single Mode_SemiAuto { begin1[]={ A3\sounds_f\weapons\myWeapon\myWeapon_st_1b.wav , db5, 1,900}; begin2[]={ A3\sounds_f\weapons\myWeapon\myWeapon_st_2b.wav , db5, 1,900}; begin3[]={ A3\sounds_f\weapons\myWeapon\myWeapon_st_3b.wav , db5, 1,900}; soundBegin[]={begin1,0.33, begin2,0.33, begin3,0.34}; // all three sounds have roughly the same probablity beginwater1[]={ A3\sounds_f\weapons\myWeapon\underwater_myWeapon_st_1b.wav , db0, 1,200}; beginwater2[]={ A3\sounds_f\weapons\myWeapon\underwater_myWeapon_st_2b.wav , db5, 1,200}; beginwater3[]={ A3\sounds_f\weapons\myWeapon\underwater_myWeapon_st_3b.wav , db5, 1,200}; soundBeginWater[]={beginwater1,0.33, beginwater2,0.33, beginwater3,0.34}; // all three sounds have roughly the same probablity }; }; }; underwater ammo has some different characteristics waterFrictionis underwater equivalent ofairFrictionand supercavitating ammunition has this close to zero. Standard ammo doesn t have this set and that means it is set to -0.4 by default (ie. stops nearly right after entering water) timeToLivefor underwater ammo is rather low to let it be harmless after some 40 meters the fancy bubble effect is done by havingeffectFlyset toAmmoUnderwater, you ll try to modify it to work even on ground and we all know it class cfgAmmo { class BulletBase; class myAmmo BulletBase // For myWeapon { waterFriction = -0.00096; // nearly direct line underwater timeToLive = 0.12; // that s enough for 45 meters underwater effectFly = AmmoUnderwater ; }; }; Ammo changes on fly and on hit there are two new simulations of ammo available mainly for artillery, but usable for many other means simulationshotSubmunitionallows to deploy multiple ammo from the parent one upon meeting certain conditions parametersubmunitionAmmodefines class of newly created ammo and this could be used multiple times you could set the inherited ammo and it would spread in cone according tosubmunitionConeAngle(and it is in degrees) submunitionConeType[]describes pattern of ammo in detail, first part is a distribution function ( random , randomcenter , poissondisc , poissondisccenter , custom ), second parameter is number of ammo except of custom one, where it is another array of pairs for specific locations submunitionConeType[] = { random , 10}; submunitionConeType[] = { randomcenter , 10}; submunitionConeType[] = { poissondisc , 10}; submunitionConeType[] = { poissondisccenter , 10}; submunitionConeType[] = { custom , {{0,0}, {-1,0}, {1,0}, {0,-1}, {0,1}} }; parametertriggerDistanceis used to deploy ammo in set 3D distance before expected target parametertriggerTimeis used to deploy ammo in set time after being fired parametertriggerSpeedCoefis a coefficient of speed of inherited ammo relative to speed of parent ammo for Artillery computer use arrayaimAboveTarget[]andaimAboveDefaultas a index of the array to set different heights to change the ammo to something different (eg. flare) class cfgAmmo { class SubmunitionBase; class MyAmmo SubmunitionBase { submunitionAmmo = MySubmunitionAmmo ; submunitionConeType[] = { poissondisc , 10}; submunitionConeAngle = 10; triggerDistance = 100; }; }; simulationshotDeployis used to change ammo upon impact (eg. change to a mine) it uses the samesubmunitionAmmoparameter as described above class cfgAmmo { class ShotDeployBase; class Mo_ClassicMineRange ShotDeployBase { submunitionAmmo = APERSMine_Range_Ammo ; // some random mine deployable by a mortar airFriction = 0; // artillery ammo works better without friction EffectFly = ArtilleryTrails ; // some funky effect of smoke trails and stuff }; }; Explosion shielding class hitpoints in configuration of all vehicles (including soldiers) has got a new parameter calledexplosionShielding this parameter simply multiplies inidrectHit taken from explosives (that makes it explosion vulnerability in an effective way) - the higher it is the more damage would selected hitpoint get from the hit class cfgVehicles { class myVehicle { class HitPoints { class HitLFWheel {armor=0.12; explosionShielding = 0.8;}; }; }; }; Reference You may want to seeArma 2 Weapon to Arma 3for correct icons and other stuff. This page is discussedon the BI forums
https://w.atwiki.jp/chokonbo_master/pages/5.html
ARMA3のDLC(ダウンロードコンテンツ)として提供されているゾンビサバイバルMODです。 ・目的 生き残る ・襲ってくる者 1. ゾンビ 2. 自分以外のプレイヤー
https://w.atwiki.jp/arma3hayabusa/pages/12.html
VirtualAssenal Ace3で特定のオブジェクトを引きずったり運んだり出来るようにする Ace3のAmmoTruckを作る
https://w.atwiki.jp/arma3editor/pages/8.html
Arma 3 Weapon Config Guidelines Arma 3 Weapon Config Guidelines Contents 1 Intro 2 Additional functionality compared to A2/OA 3 Model requirements {p3d} 4 Model config changes {model.cfg} 5 New config parameters {config.cpp} 5.1 Slotable weapons 5.1.1 Muzzle accessories 5.1.2 Optics 5.1.3 Side Accessory 5.2 Custom reload animations 5.3 Underwater weapons 5.4 Ammo changes on fly and on hit 5.5 Explosion shielding 6 Reference Intro 101 - How to set up a weapon for Arma 3 Please be aware of our Arma 3 modding license http //community.bistudio.com/wiki/Arma_3_Modding_License Additional functionality compared to A2/OA Slotable weapon accessories Custom reload animations Adjustable sights Underwater weapons Ammo changes on fly and on hit Rotating muzzle-flash Explosion shielding Model requirements {p3d} proxies for slotable accessories muzzle accessory should be on proxy \A3\data_f\proxies\weapon_slots\MUZZLE optics should be on proxy \A3\data_f\proxies\weapon_slots\TOP side accessory should be on proxy \A3\data_f\proxies\weapon_slots\SIDE all these proxies could be redefined in cfgWeapons Weapon WeaponSlotsInfo XXX linkProxy parameter where XXX is the slot name selections for folding iron sights You need to create selections and axes for iron sights if You want them folded once the optics is put on the weapon Front part should be named ForeSight with ForeSight_axis in memory lod Rear part should be named BackSight with BackSight_axis in memory lod adjustable sights for grenade launchers there needs to be a selection that is going to rotate (in case of collimator sights), default naming is OP this selection needs to have an axis in memory lod, default naming is OP_axis there needs to be a focus point, the best place is the red dot of collimator, with memory point OP_look by default and several points for eye, usually OP_eyeX where X is the number of the point. Good practice is to place them in same distance form focus point Model config changes {model.cfg} custom reload animation have a good use of newly added parameter unHideValue for hide type of animations - you are now able to make asymmetrical animations eg. for hiding of magazine {model.cfg} class magazine_hide { type = "hide"; source = "reloadMagazine"; selection = "magazine"; minValue = 0.000000; maxValue = 1.00000; hideValue = 0.220; unhideValue = 0.550; }; the animations could look a bit better by simply adding a translation for the magazine and adding an axis for that in model - magazine should translate at first, then disappear, appear and translate back {model.cfg} class magazine_reload_move_1 { type = "translation"; source = "reloadMagazine"; selection = "magazine"; axis = "magazine_axis"; minValue = 0.145; maxValue = 0.170; offset0 = 0.0; offset1 = 0.5; }; foldable iron sights use hasOptics controller {model.cfg} class BackSight_optic { type = "rotation"; source = "hasOptics"; selection = "BackSight"; axis = "BackSight_axis"; memory = 1; minValue = 0.0000000; maxValue = 1.0000000; angle0 = 0.000000; angle1 = (rad 90); }; new animation controllers zeroing and zeroing2 take values from discreteDistance[] of first and second muzzle of the weapon. The value is index number of current zeroing in the array starting with zero (that means the first value is 0, second is 1, the last is number of discrete distances plus one). It might be used for iron sights of the weapon if desired but better use is for UGL collimator sights rotation {model.cfg} class OP_ROT { type="rotation"; source="zeroing2"; // use second muzzle zeroing for rotation sourceAddress="loop"; // loop when phase out of bounds selection="OP"; // selection we want to rotate axis="OP_axis"; // has its own axis minValue=0; maxValue=3; // this weapon has array with 4 distances angle0="rad 0"; angle1="rad 65"; }; rotating muzzle flashes are done using a new animation source ammoRandom which changes it s value every time weapon is fired. Various degrees of rotation may be set up by using correct muzzle flash shape and minValue maxValue combination. {model.cfg} class MuzzleFlashROT { type="rotationX"; source="ammoRandom"; //use ammo count as phase for animation sourceAddress="loop"; //loop when phase out of bounds selection="zasleh"; //selection we want to rotate axis=""; //no own axis - center of rotation is computed from selection centerFirstVertex=true; //use first vertex of selection as center of rotation minValue=0; maxValue=4; //rotation angle will be 360/4 = 90 degrees angle0="rad 0"; angle1="rad 360"; }; New config parameters {config.cpp} Slotable weapons Available slots are defined in each weapon but are usually inherited from a parent weapon. They are stored as classes in class WeaponSlotsInfo which contains the slots and parameters for inventory Mass is a new unit used to describe weight and volume of an object used. Each container has a set capacity in the same units. allowedSlots[] is an array of slot numbers where you may put the weapon. 701 stands for vest, 801 stands for uniform, 901 stands for backpack each weapon slot is a separate subclass in class WeaponSlotsInfo parameter linkProxy defines a proxy in weapon model for said slot (see standard names on top) parameter displayName describes a mouse-over name of slot in Inventory array compatibleItems[] lists possible accessory placeable into that slot. Most weapons are able to have any RIS equipment, but eg. muzzle accessory differs according to caliber. external classes CowsSlot and PointerSlot are used for standard optics and side accessory. That means these classes are outside cfgWeapons and changeable for all weapons at once. class SlotInfo; class CowsSlot SlotInfo { // targetProxy linkProxy = "\A3\data_f\proxies\weapon_slots\TOP"; // display name displayName = $STR_A3_CowsSlot0; // class names with items supported by weapon compatibleItems[] = {"optic_Arco","optic_aco", "optic_ACO_grn","optic_hamr","optic_Holosight"}; }; class PointerSlot SlotInfo { // targetProxy linkProxy = "\A3\data_f\proxies\weapon_slots\SIDE"; // display name displayName = $STR_A3_PointerSlot0; // class names with items supported by weapon compatibleItems[] = {"acc_flashlight","acc_pointer_IR"}; }; class cfgWeapons { class myWeapon { class WeaponSlotsInfo { mass = 4; /// default mass of a weapon class MuzzleSlot SlotInfo { // targetProxy linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE"; // display name displayName = "Muzzle Slot"; // class names with items supported by weapon compatibleItems[] = {}; // moved to each weapon }; class CowsSlot CowsSlot {}; class PointerSlot PointerSlot {}; allowedSlots[] = {901}; // you simply cannot put this into your pants }; }; }; Muzzle accessories suppressors are configured as a weapon inheriting some item abilities from class ItemCore the class itself consists only from scope, displayName, picture and model, there is a separate subclass ItemInfo with all the required parameters there is subclass MagazineCoef inside class ItemInfo with parameter initSpeed - this is just a multiplier of initSpeed of weapon s magazine subclass AmmoCoef of class ItemInfo has more parameters for the ammo shoot through the suppressor hit is the coefficient of hit of original ammo visibleFire, audibleFire, visibleFireTime and audibleFireTime are coefficients for detection upon shooting the weapon higher cost coefficient should make AI think more about shooting the suppressed weapon typicalSpeed and airFriction coefficients change the ballistic characteristics of the ammo there are alternate muzzleEnd and alternativeFire directly inside class ItemInfo to have different muzzle effects origin and muzzle flashes you may set up modes[] and specific fire modes for the suppressed weapon directly in class ItemInfo class Mode_SemiAuto; class cfgWeapons { class ItemCore; class InventoryMuzzleItem_Base_F; class myMuzzleAccessory { scope = 2; displayName="My Muzzle Accessory"; picture="\A3\weapons_F\Data\UI\myMuzzleAccessory_CA.paa"; model = "\A3\weapons_f\acc\myMuzzleAccessory"; class ItemInfo InventoryMuzzleItem_Base_F { class MagazineCoef { initSpeed = 0.8; }; class AmmoCoef { hit=0.8; visibleFire=0.3; audibleFire=0.8; visibleFireTime=0.5; audibleFireTime=1.0; cost = 1.0; typicalSpeed= 0.8; airFriction = 1.0; }; muzzleEnd = "zaslehPoint"; // memory point in muzzle supressor s model alternativeFire = "Zasleh2"; // class in cfgWeapons with model of muzzle flash modes[] = {"Single"}; class Single Mode_SemiAuto { begin1[]={"A3\sounds_f\weapons\silenced\silent-25.wav", db0, 1,600}; begin2[]={"A3\sounds_f\weapons\silenced\silent-26.wav", db0, 1,600}; soundBegin[]={begin1,0.5, begin2,0.5}; closure1[]={"A3\sounds_f\weapons\closure\closure_rifle_2.wav", db0, 1,300}; closure2[]={"A3\sounds_f\weapons\closure\closure_rifle_3.wav", db0, 1,300}; soundClosure[]={closure1,0.5, closure2,0.5}; weaponSoundEffect = "DefaultRifle"; }; }; }; }; Optics in addition to default parameters mentioned in muzzle accessories class, there is weaponInfoType to choose a correct resource for weapon info directly inside optic class there is the same ItemInfo subclass but with different parameters don t forget that ItemInfo inherits some parameters from InventoryOpticsItem_Base_F (eg. muzzlePos and muzzleEnd) in case you rename the memory points parameter opticType is used for balancing the optics for specific fire modes (should be further described by balancing crew) modelOptics is the 2D model for selected optics subclass OpticsModes works the same way it used to work in A2/OA class cfgWeapons { class ItemCore; class InventoryOpticsItem_Base_F; class myOpticsAccessory { scope = 2; displayName="My Optics Accessory"; picture="\A3\weapons_F\Data\UI\myOpticsAccessory_CA.paa"; model = "\A3\weapons_f\acc\myOpticsAccessory"; weaponInfoType = "RscOptics_myOptics"; class ItemInfo InventoryOpticsItem_Base_F { mass = 7; modelOptics="\A3\Weapons_f\acc\reticle_MyOptics_F"; class OpticsModes { class MyOptics { opticsID = 1; useModelOptics = true; opticsPPEffects[]={"OpticsCHAbera1","OpticsBlur1"}; opticsZoomMin = 0.0555; opticsZoomMax = 0.1300; opticsZoomInit= 0.1300; discreteDistance[] = {100,300,400,500,600,700,800,900,1000}; discreteDistanceInitIndex = 1; distanceZoomMin = 100; distanceZoomMax = 1000; nFovLimit = 0.07; discretefov[] = {0.1300,0.0555}; discreteInitIndex = 0; modelOptics[] = {"\A3\Weapons_f\acc\reticle_MyOptics_F", "\A3\Weapons_f\acc\reticle_MyOptics_z_F"}; memoryPointCamera = "opticView"; visionMode[] = {"Normal","NVG"}; opticsFlare = true; opticsDisablePeripherialVision = true; cameraDir = ""; }; class IronOnTopOfMyOptics MyOptics { opticsID = 2; useModelOptics = false; opticsFlare = false; opticsDisablePeripherialVision = false; opticsZoomMin=0.375; opticsZoomMax=1.1; opticsZoomInit=0.75; memoryPointCamera = "eye"; visionMode[] = {}; discretefov[] = {}; }; }; }; }; }; Side Accessory the class of side accessory is made the same way as for muzzle accessory subclass ItemInfo contains some specific parameters, but they work the same way as they did in A2/OA class cfgWeapons { class ItemCore; class InventoryFlashLightItem_Base_F; class mySidesAccessory { scope = 2; displayName="My Sides Accessory"; picture="\A3\weapons_F\Data\UI\mySidesAccessory_CA.paa"; model = "\A3\weapons_f\acc\mySidesAccessory"; class ItemInfo InventoryFlashLightItem_Base_F { mass = 9; class Pointer { irLaserPos="laser pos"; irLaserEnd="laser dir"; }; class FlashLight{}; }; }; }; Custom reload animations parameter reloadAction is now for both a magazine and the weapon. if it is not defined for any of them, default reload is played. if the parameter is defined for the weapon but isn t defined for a magazine, reloadAction for weapon is played upon reloading said weapon if the magazine has reloadAction defined, the action selected by this parameter is played every time (not depending on weapon). This ensures different reloads for different magazines of one weapon (eg. UGLs) the action chosen by reloadAction is played according to config of animations for said soldier (action in CfgMovesMaleSdr leads to a state in CfgGesturesMale for default soldier), different target states could be defined for different action maps (eg. there could be a different reload gesture for crouch and prone with rifle) class CfgMovesBasic { class DefaultDie; class ManActions { reloadMyWeapon = "reloadMyWeapon"; }; }; class CfgGesturesMale { class Default; class States { class reloadMyWeapon Default { file="\A3\anims_f\Data\Anim\Sdr\wop\erc\stp\rld\rfl\reloadMyWeapon.rtm"; looped=0; speed=0.400000; mask="handsWeapon"; headBobStrength=0.200000; headBobMode=2; rightHandIKBeg=1; rightHandIKEnd=1; leftHandIKCurve[]={0,1,0.050000,0,0.950000,0,1,1}; }; }; }; class cfgWeapons { class myWeapon { reloadAction = "reloadMyWeapon"; }; }; Underwater weapons weapons with canShootInWater set to 1 are able to shoot under water parameter soundBeginWater[] has the same use as soundBegin[] and defines what sounds and with what probability is going to be played while shooting under the water surface, both of them are defined per fire mode class Mode_SemiAuto; class cfgWeapons { class myWeapon { modes[] = {"Single"}; // this example weapon has just one fire mode canShootInWater = 1; // allows to shoot under water class Single Mode_SemiAuto { begin1[]={"A3\sounds_f\weapons\myWeapon\myWeapon_st_1b.wav", db5, 1,900}; begin2[]={"A3\sounds_f\weapons\myWeapon\myWeapon_st_2b.wav", db5, 1,900}; begin3[]={"A3\sounds_f\weapons\myWeapon\myWeapon_st_3b.wav", db5, 1,900}; soundBegin[]={begin1,0.33, begin2,0.33, begin3,0.34}; // all three sounds have roughly the same probablity beginwater1[]={"A3\sounds_f\weapons\myWeapon\underwater_myWeapon_st_1b.wav", db0, 1,200}; beginwater2[]={"A3\sounds_f\weapons\myWeapon\underwater_myWeapon_st_2b.wav", db5, 1,200}; beginwater3[]={"A3\sounds_f\weapons\myWeapon\underwater_myWeapon_st_3b.wav", db5, 1,200}; soundBeginWater[]={beginwater1,0.33, beginwater2,0.33, beginwater3,0.34}; // all three sounds have roughly the same probablity }; }; }; underwater ammo has some different characteristics waterFriction is underwater equivalent of airFriction and supercavitating ammunition has this close to zero. Standard ammo doesn t have this set and that means it is set to -0.4 by default (ie. stops nearly right after entering water) timeToLive for underwater ammo is rather low to let it be harmless after some 40 meters the fancy bubble effect is done by having effectFly set to AmmoUnderwater, you ll try to modify it to work even on ground and we all know it class cfgAmmo { class BulletBase; class myAmmo BulletBase // For myWeapon { waterFriction = -0.00096; // nearly direct line underwater timeToLive = 0.12; // that s enough for 45 meters underwater effectFly = "AmmoUnderwater"; }; }; Ammo changes on fly and on hit there are two new simulations of ammo available mainly for artillery, but usable for many other means simulation shotSubmunition allows to deploy multiple ammo from the parent one upon meeting certain conditions parameter submunitionAmmo defines class of newly created ammo and this could be used multiple times you could set the inherited ammo and it would spread in cone according to submunitionConeAngle (and it is in degrees) submunitionConeType[] describes pattern of ammo in detail, first part is a distribution function ("random", "randomcenter", "poissondisc", "poissondisccenter", "custom"), second parameter is number of ammo except of custom one, where it is another array of pairs for specific locations submunitionConeType[] = {"random", 10}; submunitionConeType[] = {"randomcenter", 10}; submunitionConeType[] = {"poissondisc", 10}; submunitionConeType[] = {"poissondisccenter", 10}; submunitionConeType[] = {"custom", {{0,0}, {-1,0}, {1,0}, {0,-1}, {0,1}} }; parameter triggerDistance is used to deploy ammo in set 3D distance before expected target parameter triggerTime is used to deploy ammo in set time after being fired parameter triggerSpeedCoef is a coefficient of speed of inherited ammo relative to speed of parent ammo for Artillery computer use array aimAboveTarget[] and aimAboveDefault as a index of the array to set different heights to change the ammo to something different (eg. flare) class cfgAmmo { class SubmunitionBase; class MyAmmo SubmunitionBase { submunitionAmmo = "MySubmunitionAmmo"; submunitionConeType[] = {"poissondisc", 10}; submunitionConeAngle = 10; triggerDistance = 100; }; }; simulation shotDeploy is used to change ammo upon impact (eg. change to a mine) it uses the same submunitionAmmo parameter as described above class cfgAmmo { class ShotDeployBase; class Mo_ClassicMineRange ShotDeployBase { submunitionAmmo = "APERSMine_Range_Ammo"; // some random mine deployable by a mortar airFriction = 0; // artillery ammo works better without friction EffectFly = "ArtilleryTrails"; // some funky effect of smoke trails and stuff }; }; Explosion shielding class hitpoints in configuration of all vehicles (including soldiers) has got a new parameter called explosionShielding this parameter simply multiplies inidrectHit taken from explosives (that makes it explosion vulnerability in an effective way) - the higher it is the more damage would selected hitpoint get from the hit class cfgVehicles { class myVehicle { class HitPoints { class HitLFWheel {armor=0.12; explosionShielding = 0.8;}; }; }; }; Reference You may want to see Arma 2 Weapon to Arma 3 for correct icons and other stuff. This page is discussed on the BI forums
https://w.atwiki.jp/arma3/pages/48.html
{紹介文保管所} このページはトップページに書き込んであった各クランコミンニティ紹介ページにあつた紹介文を一時保管するベージです。 一、二ヶ月の保管のあと、このページは削除しますので移行の必要があれば早めにお願いします。 空軍クラン活動再開 一時活動をお休みしていましたが先日活動を再開しました!! フライトシミュレーターでは体験できない戦闘、エースコンバットには無いリアルな操作、DCSでは出来ない地上部隊との連携、それを出来るのがRAFです。 味方部隊をブラックホークで輸送したい!上空でアパッチに乗り味方の支援をしたい!マッハ1の世界でドックファイトをしたい! http //rafclan.wix.com/raf-clan 全ての空好きさん大歓迎です。 空軍パイロットとして新たな人生を RAF ARMA3 第3回 Coop初心者講習会! Arma3のマルチプレイに興味があるけど、なんか難しそうで参加しにくい…という声にお答えして、初心者さん向けのCoop講習会を開催します。この機会にCoopに参加してみませんか? 開催日時 3月28日(土) 21 00 ~ (途中参加・退出は自由です) TSサーバー triserver.com 詳しくは こちらのページ をご覧ください。参加お待ちしています。 triserver Arma3 www.triserver.com ARMA3 新サーバー設立 先日数少ないARMAサーバーの中にT Tサーバーが設立されました! 当サーバーのモットーはアットホームながらも真面目に!です。 少数歩兵部隊に向けて、戦術や隊形などの各種演習を頻繁に行っております。 話しやすいくて過ごしやすい、そんな場所作りにも尽力させて頂いております。 楽しみながら学んでゆく、今までに無かったサーバーの形です。 初めての方も経験者の方も一歩進んだゲームプレイを目指してみませんか?? 完璧な統率力を目ざして.....!プレイヤー全体で日々精進中! ホームページはこちら http //ttserver.wix.com/tandt-server-arma3 いつでもお待ちしておりま~す^^ ARMA3 第2回 Coop初心者講習会! 新年おめでとうございます。2015年もよろしくお願いします。 Arma3のマルチプレイに興味があるけど、なんか難しそうで参加しにくい…という声にお答えして、初心者さん向けのCoop講習会を開催します。新年始めに大規模Coopで遊んでみませんか? 内容はアドオンの初期設定からゲームシステムと操作方法の解説、基本的なルール・動き方など、Coopに参加する上で最低限覚えておきたい事です。この機会にマルチプレイCoopにぜひお越しください! 日時 1月4日 (土) 22 00 ~(途中参加・退出は自由です) サーバー JPN TriServer Arma3 参加方法は こちら のページをご覧ください。 皆さんの参加をお待ちしています。 ARMA3サーバー合同COOPイベント! 10月25日(土)、Arma3のサーバー合同Coopイベントを開催します。 日本のArma3コミュニティさんと交流し、大人数でCoopしてみませんか? もちろん個人での参加も大歓迎です。 詳しくは こちら のページをご覧ください。 }
https://w.atwiki.jp/icarus_memo/pages/17.html
Dayz Arma3 Exile Memo1 Kongaribacom #2 PVE Server編 ■サーバールール ミッション中のエリアに入らない。(書いてないがPVEサーバの暗黙のルールらしい) プレイヤーの荷物を漁らない。 プレイヤーを攻撃しない。 プレイヤーの所有物を盗まない。 初心者をいじめない。優しく教える事。 拠点建設時は、周りに建物がないことを確認すること。 プレイヤーの拠点に入らない事。 後は、サーバのルール表参照。 ■基本操作 [8]:ステータス表示 [6]:OS画面表示 [0]:自動歩行 車や自転車などが変なところにはまってしまったら、マウスカーソルを回し「Filp」を選択する。 ↑戻らない場合は、一度運転席に入り再度出てもう1度同じ操作をすると治る。 ■トレーダーシティ Arma3 Exileでは、トレーダーシティが3つあります。 トレーダーシティのマーク ■リスペクト(Respect) 武器・防具・クラフト(文字が緑色) 購入時:6250必要 武器・防具・クラフト(文字が青色) 購入時:12500必要 武器・防具・クラフト(文字が赤色) 購入時:50000必要 ■拠点作成(KongariBacon2) トレーダーシティの2階で購入可能 PurchaseTerritory 拠点の購入 Upgrade Territory 拠点の増築 PayTerritory Protection Money 拠点の保護→拠点の消滅しないようにする。 拠点の強化 レベル 領域 配置数 価格 拠点の保持費用 備考 1 30m 60 5000 初期購入時 2 35m 70 10000 3 50m 100 15000 4 5 6 7 8 9 10 ■車の修理 ・ダクトテープ1つで大体は、修理できます。 ・ダクトテープ入手方法:拾う、買う(500∞)、クラフト(Bantege(1) + Dock(3)←オススメ!! ■稼ぎ方法 1.沸いたAIをとにかく倒す。武器1つ80~100∞ 2.野良で沸いている車を売る。(一攫千金) 3.食べ物、飲み物、建築素材を売る。(監視カメラは高く売れます!!) 4.ペットボトルを拾いまくってトレーダーシティでFreshWaterにして売る。(1つ45∞) 5.ミッションを遂行する。(緑のミッションが1番楽らしい) ■建築 ・斧、車必須です。 ・クラフト中に「1キー」自由クラフトモード「2キー」グリッドモード「3キー」連結モード(オススメ) ・Grinder、ScrewDriver、CordlessScrewDriver、CanOpener(缶抜き)、wrench、Axe、Handsow、FoolBox は、トレーダーから買うことができないみたいです。 ・ ■サルベージ ・砂の回収 必要アイテム:ショベル1つ 「Ochrolimni」にて回収できるらしい。 ※2017-05-01現在回収可能 ※2017-02-05現在バグにて回収不可 ■トランスポートミッション ・受注の仕方 個人 →自拠点 or 他拠点のラップトップで受注する。 ランダム →空港のラップトップで受注する。 ※PC画面が出たら、Space長押しする。 ・個人ミッション 必要アイテム:ラップトップ(PC)+車(Vanなど) ※激レア ・ランダムミッション 必要:なし ・報酬:リスペクト・1000~2000pop 赤コンテナ:食料/飲み物 2スロット 弾薬コンテナ:弾薬 2スロット WaterBarrel:WaterBarrel 2スロット 木材:Wall or Door 3スロット タンク:FuelBarrel 2スロット 鉄筋:MetalPaul 3スロット 段ボール箱: 3スロット 誰も詳細を載せないのでここに記入しておきます。 Kongaribacon Kongaribacon(ここ) ★参考アイテムページ★ 一人でやりたい方はこちら! ★サーバ構築ページ★ tag Arma3 Exile トレーダーシティ